Computing systems have made significant contributions toward the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous devices, such as desktop personal computers (PCs), laptop PCs, tablet PCs, netbooks, smart phones, servers, and the like have facilitated increased productivity and reduced costs in communicating and analyzing data in most areas of entertainment, education, business, and science. One common aspect of computing devices is the communication protocol, connectors and cables for communicating within the computing device, between the computing device and internal or external peripheral devices, and the like. The Universal Serial Bus was developed to standardize communication between a host computing device and one or more attached USB devices. The USB standard provides for both communication and the supply of power between the host computing device and the one or more USB devices. The one or more USB devices are coupled to the host computing device in a tiered-star topology. USB devices are linked in series through hubs. The host computing device implements the root hub. USB devices communicate using logical channels (e.g., pipes). A pipe is a connection from the host controller to a function of the USB device.
When a USB device is first connected to a USB host, a USB device enumeration process is started. The enumeration starts by sending, a reset signal to the USB device. The data rate of the USB device is determined during the reset signaling. After the reset, the USB device's information, including its class code that specifies the device's functionality, is read by the host and the device is assigned a unique address. If the device is supported by the host, the device drivers needed for communicating with the USB device are loaded and the device is set to a configured state. If the USB host is restarted, the enumeration process is repeated for all connected USB device. The enumeration process is relatively time consuming. Accordingly, there is a continued need for improved techniques for waking-up a USB port from deep sleep where the host USB controller is powered down.